SwiftUI Basics

文本

1. 基础文本与系统字体大小

你可以使用 .font() 修饰符并传入苹果预设的样式(如标题、正文、副标题)。强烈推荐使用这些预设样式,因为它们会根据用户 iPhone 设置中的“辅助功能(字体大小)”自动进行缩放调整。

1
2
3
4
Text("Hello World")
.font(.title) // 设置为大标题大小
// .font(.body) // 默认的正文大小
// .font(.caption) // 较小的辅助说明文字

2. 字体粗细与样式修饰

你可以调整字体的粗细,或者为其添加斜体、下划线和删除线。下划线和删除线还可以进一步自定义颜色。

1
2
3
4
5
6
Text("SwiftUI 学习")
.fontWeight(.semibold) // 设置为半粗体
// .bold() // 直接加粗的简写
.italic() // 设置为斜体
.underline(true, color: .red) // 添加红色的下划线
.strikethrough(true, color: .green) // 添加绿色的删除线

3. 自定义精确的系统字体

如果设计师要求完全精确的字号(比如 24px),你可以使用 .system 字体。你还可以在这里改变字体的设计风格,比如等宽字体或圆润字体。注意:写死具体数值会导致字体无法随系统设置自动缩放。

1
2
Text("精确尺寸的文本")
.font(.system(size: 24, weight: .semibold, design: .rounded))

4. 多行文本对齐与间距调整

当一段文字太长自动换行时,你可以决定这些文本是居中、靠左还是靠右对齐。同时,你也可以调整行与行之间,以及字母与字母之间的间距。

1
2
3
4
Text("这是一段非常非常长的多行测试文本,用来演示如何在 SwiftUI 中进行排版和对齐操作。")
.multilineTextAlignment(.leading) // 多行文本靠左(头部)对齐
.baselineOffset(10) // 调整行间距(类似 Word 里的行距)
.kerning(2) // 调整字母之间的字间距

5. 更改文本颜色

修改文本的前景色(即字体本身的颜色)非常直观。

1
2
Text("带颜色的文本")
.foregroundColor(.blue) // 将字体颜色修改为蓝色

6. 限制框架与自适应缩放

有时候我们需要将文本限制在一个固定大小的框(Frame)内。如果文本太长,你可以允许它自动缩小字号,以确保所有内容都能完整显示在这个框内。

1
2
3
Text("这段文本会被限制在指定的框内,如果放不下会自动缩小。")
.frame(width: 200, height: 100, alignment: .leading) // 设置固定宽高,并让内容靠左对齐
.minimumScaleFactor(0.1) // 允许文本最小缩小到原字号的 10% 来适应框架

7. 字符串大小写快速转换

如果你想快速统一文本的大小写格式,可以直接在传入 Text 的字符串内部调用 Swift 的原生字符串方法。

1
2
3
Text("hello world".uppercased()) // 全部转换为大写:HELLO WORLD
// Text("HELLO WORLD".lowercased()) // 全部转换为小写
// Text("hello world".capitalized) // 每个单词首字母大写:Hello World